package com.zw.mes.module.prodtaskmanager.model;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import javax.persistence.Transient;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Date;

/**
 * @author 徐一贺
 * @className ProdOrderQueryModel
 * @description 生产进度看板 搜索模型类
 * @date 2021/2/2 14:22
 * @versron ver 1.0
 */
@Data
public class ProdOrderQueryModel {
    /**
     * 生产令主键
     */
    @ExcelIgnore
    private Integer prodId;
    /**
     * 生产令编号
     */
    @ExcelProperty(value = "项目编号",index = 0)
    private String prodNo;
    /**
     * 项目名称
     */
    @ExcelProperty(value = "项目名称",index = 1)
    private String proNam;
    /**
     * 数量
     */
    @ExcelProperty(value = "数量",index = 2)
    private String prodNum;
    /**
     * 安装地点
     */
    @ExcelProperty(value = "安装地点",index = 3)
    private String insSit;
    /**
     * 需方
     */
    @ExcelProperty(value = "需方",index = 4)
    private String cus;
    /**
     * 交货时间
     */
    @ExcelProperty(value = "交货时间",index = 5)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date prodDelDat;
    /**
     * 是否重点：1=是，0=否
     */
    @ExcelIgnore
    private Byte prodIsKey;
    /**
     * 是否重点： 1=是，0=否
     */
    @ExcelProperty(value = "是否重点",index = 6)
    private String prodIsKeyStr;

    /**
     * 分类：1是设备类，2是其他（普通）
     */
    @ExcelIgnore
    private Integer prodTyp;
    /**
     * 分类：1是设备类，2是其他（普通）
     */
    @ExcelProperty(value = "分类",index = 7)
    private String prodTypStr;
    /**
     * 设计任务主键
     */
    @ExcelIgnore
    private Integer dsnId;
    /**
     * 设计任务状态：1是未开始。2是执行中。3是已完成，0是不需要
     */
    @ExcelIgnore
    private Integer dsnSta;
    /**
     * 设计任务状态：1是未开始。2是执行中。3是已完成，0是不需要
     */
    @ExcelProperty(value = "设计",index = 8)
    private String dsnStaStr;
    /**
     * 工艺任务主键
     */
    @ExcelIgnore
    private Integer tecId;
    /**
     * 工艺任务状态：1是未开始。2是执行中。3是已完成，0是不需要
     */
    @ExcelIgnore
    private Integer tecSta;
    /**
     * 工艺任务状态：1是未开始。2是执行中。3是已完成，0是不需要
     */
    @ExcelProperty(value = "工艺",index = 9)
    private String tecStaStr;
    /**
     * 下料任务主键
     */
    @ExcelIgnore
    private Integer cutId;
    /**
     * 下料任务状态：1是未开始。2是执行中。3是已完成，0是不需要
     */
    @ExcelIgnore
    private Integer cutSta;
    @ExcelProperty(value = "下料",index = 10)
    private String cutStaStr;
    /**
     * 铆焊任务主键
     */
    @ExcelIgnore
    private Integer raoId;
    /**
     * 铆焊任务状态：1是未开始。2是执行中。3是已完成，0是不需要
     */
    @ExcelIgnore
    private Integer raoSta;
    /**
     * 铆焊需要完成的零件数量
     */
    @ExcelIgnore
    private BigDecimal raoCou;
    /**
     * 铆焊已经完成的零件数量
     */
    @ExcelIgnore
    private BigDecimal raoComCou;
    /**
     * 机加任务主键
     */
    @ExcelIgnore
    private Integer macId;
    /**
     * 机加任务状态：1是未开始。2是执行中。3是已完成，0是不需要
     */
    @ExcelIgnore
    private Integer macSta;
    /**
     * 机加需要完成的零件数量
     */
    @ExcelIgnore
    private BigDecimal macCou;
    /**
     * 机加已经完成的零件数量
     */
    @ExcelIgnore
    private BigDecimal macComCou;
    /**
     * 装配任务主键
     */
    @ExcelIgnore
    private Integer assId;
    /**
     * 装配任务状态：1是未开始。2是执行中。3是已完成，0是不需要
     */
    @ExcelIgnore
    private Integer assSta;
    /**
     * 装配任务状态：1是未开始。2是执行中。3是已完成，0是不需要
     */
    @ExcelProperty(value = "装配",index = 12)
    private String assStaStr;
    /**
     * 发货任务主键
     */
    @ExcelIgnore
    private Integer delId;
    /**
     * 发货任务状态：1是未开始。2是执行中。3是已完成，0是不需要
     */
    @ExcelIgnore
    private Integer delSta;
    /**
     * 发货任务状态：1是未开始。2是执行中。3是已完成，0是不需要
     */
    @ExcelProperty(value = "发货",index = 13)
    private String delStaStr;
    /**
     * 安装任务主键
     */
    @ExcelIgnore
    private Integer insId;
    /**
     * 安装任务状态：1是未开始。2是执行中。3是已完成，0是不需要
     */
    @ExcelIgnore
    private Integer insSta;
    /**
     * 安装任务状态：1是未开始。2是执行中。3是已完成，0是不需要
     */
    @ExcelProperty(value = "安装",index = 14)
    private String insStaStr;
    /**
     * 调试任务主键
     */
    @ExcelIgnore
    private Integer debId;
    /**
     * 调试任务状态：1是未开始。2是执行中。3是已完成，0是不需要
     */
    @ExcelIgnore
    private Integer debSta;
    /**
     * 调试任务状态：1是未开始。2是执行中。3是已完成，0是不需要
     */
    @ExcelProperty(value = "调试",index = 15)
    private String debStaStr;
    /**
     * 生产状态：1是未开始。2是执行中。3是已完成，0是不需要
     */
    @ExcelIgnore
    private Integer prodSta;
    /**
     * 生产状态：1是未开始。2是执行中。3是已完成，0是不需要
     */
    @ExcelProperty(value = "生产",index = 11)
    private String prodStaStr;

    /**
     * 开始时间
     */
    @ExcelIgnore
    private Date startTime;
    /**
     * 结束时间
     */
    @ExcelIgnore
    private Date endTime;
    public void setEndTime(Date endTime) {
        if (endTime != null) {
            Calendar cal = Calendar.getInstance();
            cal.setTime(endTime);
            cal.add(Calendar.DAY_OF_YEAR, 1);
            this.endTime = cal.getTime();
        }
    }

    /**
     *  是否是初始化数据：1是，0不是
     */
    @ExcelIgnore
    private Byte prodIsIni;
    /**
     * 任务类别
     */
    @ExcelIgnore
    private String taskType;
    /**
     * 任务状态
     */
    @ExcelIgnore
    private Integer taskStatus;
    /**
     * 任务状态
     */
    @ExcelIgnore
    private String taskStatusStr;
    /**
     * 项目是否取消：1=是，0=否
     */
    @ExcelIgnore
    private Integer proCancelMark;
    /**
     * 临时表名
     */
    @ExcelIgnore
    private String tempTableName;
    /**
     * 分页导出使用 前几行
     */
    @ExcelIgnore
    private Integer TopCount;
    /**
     * 分页导出使用 不包含行数
     */
    @ExcelIgnore
    private Integer NotHaveTopCount;
    /**
     * 生产令状态：1=正常，2=终止，3=暂缓
     */
    @ExcelIgnore
    private Integer prodManSta;

}
